// SuperInt.h: interface for the CSuperInt class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SUPERINT_H__02B9395B_AE41_4804_ACDD_E876ED6B9759__INCLUDED_)
#define AFX_SUPERINT_H__02B9395B_AE41_4804_ACDD_E876ED6B9759__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define LEN 50
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef unsigned __int64 QWORD; //quarter word
typedef unsigned int UINT;

typedef char ElemType;

class CSuperInt
{
private:
	ElemType *r;
	size_t i, j, len_Overall;
	UINT lena, lenb, lenr;
protected:
	DWORD m_carry;
public:
	DWORD Transfor(DWORD n);
	void Mult(ElemType *a, ElemType *b);
	void Result();
	void Add(ElemType *a, ElemType *b);
	CSuperInt(DWORD carry=10);
	virtual ~CSuperInt();
protected:
	void SwapInt();
};

#endif // !defined(AFX_SUPERINT_H__02B9395B_AE41_4804_ACDD_E876ED6B9759__INCLUDED_)
